import utils from "../utils/index.js";
function _formatDate(value, format) {
    if (utils.isEmpty(value)) return "-";
    if (!(value instanceof Date)) {
        value = value.toString();
        value.length == 10 && (value += "000");
        value = new Date(parseInt(value));
    }
    return utils.formatDate(value, format);
}
export default {
    install(Vue) {
        //年月日格式化
        Vue.filter('ymd', function (value) {
            return _formatDate(value, "yyyy-MM-dd");
        });

        //年月日时分格式化
        Vue.filter('ymdhm', function (value) {
            return _formatDate(value, "yyyy-MM-dd hh:mm");
        });

        //时分格式化
        Vue.filter('hm', function (value) {
            return _formatDate(value, "hh:mm");
        });

        //小数点后不足两位，补足两位
        Vue.filter('keep2decimal', function (value) {
            if (typeof parseFloat(value) != "number") {
                return 0.00;
            }
            value = parseFloat(value);
            let res = 0;
            // 如果是整数
            if (Math.floor(value) === value) {
                res = value.toString() + ".00";
            }
            // 如果只有一位小数
            let decimal = value.toString().split(".")[1];
            if (decimal && decimal.length == 1) {
                res = value.toString() + "0";
            }
            if (decimal && decimal.length > 1) {
                res = value.toString();
            }
            return res;
        });

        //电话中间四位转换为*
        Vue.filter('tel2star', function (value) {
            value = "" + value;
            return value.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
        });

        //用户名只显示首和尾,其他转换为*
        Vue.filter('name2star', function (value) {
            value = "" + value;
            return value.replace(/^(.).*(.)$/g, "$1*$2");
        });

        //枚举值
        Vue.filter('enums', function (value, enums) {
            if (utils.isEmpty(value)) return "-";
            return enums.Get(Number(value)).text;
        });

        //枚举颜色
        Vue.filter('enumsColor', function (value, enums) {
            return enums.Get(Number(value)).color;
        });
    }
}